from rest_framework.pagination import PageNumberPagination
from rest_framework.response import Response


def jwt_response_payload_handler(token, user, request):
    # 自定义jwt认证成功返回数据
    return {
        'token':token,
        'username':user.username,
        'id':user.id
    }


# 自定义用户管理分页器
class UserPageNum(PageNumberPagination):
    # 指定每页数量参数
    page_size_query_param = 'pagesize'
    # 指定最大返回数量
    max_page_size = 5

    # 重写分页返回方法，按照指定的字段进行分页数据返回
    def get_paginated_response(self, data):
        return Response({
            'count': self.page.paginator.count, # 总数量
            'lists': data, # 用户数据
            'page': self.page.number, # 当前页数
            'pages': self.page.paginator.num_pages, # 总页数
            'pagesize': self.page_size # 后端指定的页容量
        })